﻿using System;
using System.Collections;

namespace Program18_新_
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] nums = new int [100];
            #region 重复元素判断
            ArrayList arrayList = new ArrayList();
            Random md = new Random();
            while(arrayList.Count<1000)
            {
                int tempNum = md.Next(1, 10000);
                if(!arrayList.Contains(tempNum))//判断元素是否存在arrayList中（避免不重复）
                {
                    arrayList.Add(tempNum);
                }
            }
            for (var i = 0; i < nums.Length; i++)
            {
                nums[i] = (int)arrayList[i];
                Console.Write(nums[i] + " ");
            }
            Console.WriteLine();
            #endregion

            Console.WriteLine("排序后...");
            //C#类库,队列的排序方法
            //Array.Sort(nums);
            //Array.Reverse(nums);
            #region 冒泡排序
            //从第一个元素遍历到倒数第二个元素
            //for (var i=0;i<nums.Length-1;i++)
            //{
            //    for(var j=0;j<nums.Length-i-1;j++)
            //    {
            //        if(nums[j]>nums[j+1])
            //        {
            //            //如果当前元素大于后续的元素，题目进行交换
            //            var tmp = nums[j];
            //            nums[j] = nums[j + 1];
            //            nums[j + 1] = tmp;
            //        }
            //    }
            //}
            //for (var i = 0; i < nums.Length; i++)
            //{
            //    Console.Write(nums[i] + " ");
            //}
            #endregion
            #region 选择排序
            int minindex;
            for (var i = 0; i < nums.Length - 1; i++)
            {
                minindex = i;
                //查询余下数组中最小值的下标，存放到minindex
                for (var j = i + 1; j < nums.Length; j++)
                {
                    if (nums[j] < nums[minindex])
                    {
                        minindex = j;
                    }
                }
                var tmp = nums[i];
                nums[i] = nums[minindex];
                nums[minindex] = tmp;
            }
            foreach (var item in nums)
            {
                Console.Write(item + " ");
            }
            #endregion
        }
    }
}
